#ifndef TRACE_CUSTOM_TILING_H
#define TRACE_CUSTOM_TILING_H
#include "register/tilingdata_base.h"

namespace optiling {
BEGIN_TILING_DATA_DEF(TraceCustomTilingData)
  TILING_DATA_FIELD_DEF(int32_t, loopCnt);              // 分核处理时每核循环次数
  TILING_DATA_FIELD_DEF(uint32_t, fullTileLength);      // 主核长度（单位为元素个数）
  TILING_DATA_FIELD_DEF(uint32_t, lastTileLength);      // 尾核长度
  TILING_DATA_FIELD_DEF(uint32_t, alignNum);            // 对齐值（用于内存对齐）对于half取16
  TILING_DATA_FIELD_DEF(uint32_t, alignPadding);        // 对齐长度填充
  TILING_DATA_FIELD_DEF(uint32_t, alignLength);         // 对齐长度（单位为元素个数）
  TILING_DATA_FIELD_DEF(uint32_t, typeSize);            // 每个元素的字节数（例如 sizeof(float)）
  TILING_DATA_FIELD_DEF(uint32_t, matrixNum);           // 待处理的矩阵数量（batch size）
  TILING_DATA_FIELD_DEF(uint32_t, matrixOrder);         // 各分核子矩阵阶数
  TILING_DATA_FIELD_DEF(uint32_t, rowLength);           // 单个矩阵的行数
  TILING_DATA_FIELD_DEF(uint32_t, columnLength);        // 单个矩阵的列数
  TILING_DATA_FIELD_DEF(uint32_t, ubMax);               // UB（Unified Buffer）最大可用大小（单位为元素个数）


END_TILING_DATA_DEF;

REGISTER_TILING_DATA_CLASS(TraceCustom, TraceCustomTilingData)
}
#endif // TRACE_CUSTOM_TILING_H
